'use strict';

const path = require('path');

/**
 * 默认配置
 */
module.exports = (appInfo) => {

	const config = {};

	/**
	 * 开发者工具
	 */
	config.openDevTools = false;

	/**
	 * 应用程序顶部菜单
	 */
	config.openAppMenu = true;

	/**
	 * 主窗口
	 */
	config.windowsOption = {
		title: '八戒小说',//应用名称
		width: 500,
		height: 900,
		minWidth: 400,
		maxWidth:1000,
		minHeight: 600,
		webPreferences: {
			webSecurity: false,
			contextIsolation: false, // false -> 可在渲染进程中使用electron的api，true->需要bridge.js(contextBridge)
			nodeIntegration: true,
			//preload: path.join(appInfo.baseDir, 'preload', 'bridge.js'),
			blinkFeatures: 'EnableTouchEvents', // 启用 touch 事件
			webviewTag: true
		},
		frame: true,
		show: false,
		icon: path.join(appInfo.home, 'public', 'images', 'logo-32.png'),
	};

	/**
	 * ee框架日志
	 */
	config.logger = {
		encoding: 'utf8',
		level: 'INFO',
		outputJSON: false,
		buffer: true,
		enablePerformanceTimer: false,
		rotator: 'day',
		appLogName: 'ee.log',
		coreLogName: 'ee-core.log',
		errorLogName: 'ee-error.log'
	}

	/**
	 * 远程模式-web地址
	 */
	config.remoteUrl = {
		enable: true,
		// url: 'https://static-mp-52693954-5132-4377-9ff0-af2d06a0c8c5.next.bspapp.com/h5Red/'
		url: 'http://localhost:5558/h5Red/'
	};

	/**
	 * 内置socket服务
	 */
	config.socketServer = {
		enable: false,
		port: 7070,
		path: "/socket.io/",
		connectTimeout: 45000,
		pingTimeout: 30000,
		pingInterval: 25000,
		maxHttpBufferSize: 1e8,
		transports: ["polling", "websocket"],
		cors: {
			origin: true,
		}
	};

	/**
	 * 内置http服务
	 */
	config.httpServer = {
		enable: false,
		https: {
			enable: false,
			key: '/public/ssl/localhost+1.key',
			cert: '/public/ssl/localhost+1.pem'
		},
		host: '127.0.0.1',
		port: 7071,
		cors: {
			origin: "*"
		},
		body: {
			multipart: true,
			formidable: {
				keepExtensions: true
			}
		},
		filterRequest: {
			uris: [
				'favicon.ico'
			],
			returnData: ''
		}
	};

	/**
	 * 主进程
	 */
	config.mainServer = {
		protocol: 'file://',
		indexPath: '/public/dist/index.html',
		host: '127.0.0.1',
		port: 7072,
	};

	/**
	 * 硬件加速
	 */
	config.hardGpu = {
		enable: false
	};

	/**
	 * 异常捕获
	 */
	config.exception = {
		mainExit: false,
		childExit: true,
		rendererExit: true,
	};

	/**
	 * jobs
	 */
	config.jobs = {
		messageLog: true
	};

	/**
	 * 插件功能
	 */
	config.addons = {
		window: {
			enable: true,
		},
		tray: {
			enable: true,
			title: 'EE程序',
			icon: '/public/images/tray.png'
		},
		security: {
			enable: true,
		},
		awaken: {
			enable: true,
			protocol: 'ee',
			args: []
		},
		autoUpdater: {
			enable: true,
			windows: false,
			macOS: false,
			linux: false,
			options: {
				provider: 'generic',
				url: 'http://kodo.qiniu.com/'
			},
			force: false,
		},
		javaServer: {
			enable: false,
			port: 18080,
			jreVersion: 'jre1.8.0_201',
			opt: '-server -Xms512M -Xmx512M -Xss512k -Dspring.profiles.active=prod -Dserver.port=${port} -Dlogging.file.path="${path}" ',
			name: 'java-app.jar'
		}
	};

	return {
		...config
	};
}